home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Text Processing / Alpha 5.63 / Tcl / SystemCode / strings.tcl < prev    next >
Encoding:
Text File  |  1993-10-09  |  1.6 KB  |  64 lines  |  [TEXT/ALFA]

  1. #=============================================================================
  2. # 'Strings' commands - Thanks, Mark Nagata
  3. #=============================================================================
  4.  
  5. proc setPrefix {} {
  6.     global prefixString
  7.     if {[catch {prompt "New Prefix String:" $prefixString} res] == 1} return
  8.     set prefixString $res
  9. }
  10.  
  11. proc setSuffix {} {
  12.     global suffixString
  13.     if {[catch {prompt "New Suffix String:" $suffixString} res] == 1} return
  14.     set suffixString $res
  15. }
  16.  
  17. proc insertSuffix {} {doSuffix insert}
  18. proc removeSuffix {} {doSuffix remove}
  19. proc doSuffix {which} {
  20.     global suffixString
  21.     set suff [quoteExpr $suffixString]
  22.     set start [getPos]
  23.     set end [selEnd]
  24.     set start [lineStart $start]
  25.     set end [nextLineStart [expr $end-1]]
  26.     set text [getText $start $end]
  27.     deleteText $start $end
  28.     if {$which == "insert"} then {
  29.         set str ${suffixString}\r
  30.         regsub -all \r $text $str text
  31.     } else {
  32.         set str ${suff}\r
  33.         regsub -all $str $text \r text
  34.     }
  35.     insertText $text
  36.     select $start [expr {$start+[string length $text]}]
  37. }
  38.  
  39.  
  40. proc insertPrefix {} {doPrefix insert}
  41. proc removePrefix {} {doPrefix remove}
  42. proc doPrefix {which} {
  43.     global prefixString
  44.     set pref [quoteExpr $prefixString]
  45.     set start [getPos]
  46.     set end [expr [selEnd]-1]
  47.     if {$end<$start} {set end $start}
  48.     set start [lineStart $start]
  49.     set text [getText $start $end]
  50.     if {$which == "insert"} then {
  51.         set str \r$prefixString
  52.         regsub -all \r $text $str text
  53.         set    text "$prefixString$text"
  54.         replaceText    $start $end    $text
  55.     } else {
  56.         set str \r$pref
  57.         regsub -all $str $text \r text
  58.         regsub ^$pref $text "" text
  59.         replaceText $start $end $text
  60.     }
  61.     select $start    [expr    {$start+[string    length $text]+1}]
  62. }
  63.  
  64.